using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;
using RRHH.RRHH_Service;

namespace RRHH.Models.Mapping
{
    public class PERSONALMap : EntityTypeConfiguration<BEPersonal>
    {
        public PERSONALMap()
        {
            // Primary Key
            this.HasKey(t => t.IDPERSONAL);

            // Properties
            this.Property(t => t.NOMBRESEMPLEADO)
                .HasMaxLength(100);

            this.Property(t => t.APEPATERNOEMPLEADO)
                .HasMaxLength(255);

            this.Property(t => t.APEMATERNOEMPLEADO)
                .HasMaxLength(255);

            this.Property(t => t.DIRECCIONEMPLEADO)
                .HasMaxLength(255);

            this.Property(t => t.IDESTADOCIVIL)
                .HasMaxLength(2);

            this.Property(t => t.FLAGSEXO)
                .HasMaxLength(1);

            this.Property(t => t.IDDEPDOMICILIO)
                .HasMaxLength(2);

            this.Property(t => t.IDPROVDOMICILIO)
                .HasMaxLength(2);

            this.Property(t => t.IDDISTDOMICILIO)
                .HasMaxLength(2);

            this.Property(t => t.EMAIL)
                .HasMaxLength(255);

            this.Property(t => t.IDDOCIDENTIDAD)
                .HasMaxLength(2);

            this.Property(t => t.NUMERODOCUMENTO)
                .HasMaxLength(30);

            this.Property(t => t.FLAGESTADO)
                .IsFixedLength()
                .HasMaxLength(1);

            this.Property(t => t.ANULADO)
                .IsFixedLength()
                .HasMaxLength(1);

            // Table & Column Mappings
            this.ToTable("PERSONAL");
            this.Property(t => t.IDPERSONAL).HasColumnName("IDPERSONAL");
            this.Property(t => t.NOMBRESEMPLEADO).HasColumnName("NOMBRESEMPLEADO");
            this.Property(t => t.APEPATERNOEMPLEADO).HasColumnName("APEPATERNOEMPLEADO");
            this.Property(t => t.APEMATERNOEMPLEADO).HasColumnName("APEMATERNOEMPLEADO");
            this.Property(t => t.FECHANACIMIENTO).HasColumnName("FECHANACIMIENTO");
            this.Property(t => t.DIRECCIONEMPLEADO).HasColumnName("DIRECCIONEMPLEADO");
            this.Property(t => t.IDESTADOCIVIL).HasColumnName("IDESTADOCIVIL");
            this.Property(t => t.FLAGSEXO).HasColumnName("FLAGSEXO");
            this.Property(t => t.IDDEPDOMICILIO).HasColumnName("IDDEPDOMICILIO");
            this.Property(t => t.IDPROVDOMICILIO).HasColumnName("IDPROVDOMICILIO");
            this.Property(t => t.IDDISTDOMICILIO).HasColumnName("IDDISTDOMICILIO");
            this.Property(t => t.EMAIL).HasColumnName("EMAIL");
            this.Property(t => t.IDDOCIDENTIDAD).HasColumnName("IDDOCIDENTIDAD");
            this.Property(t => t.NUMERODOCUMENTO).HasColumnName("NUMERODOCUMENTO");
            this.Property(t => t.FLAGESTADO).HasColumnName("FLAGESTADO");
            this.Property(t => t.ANULADO).HasColumnName("ANULADO");
        }
    }
}
